跳到主要内容

使用 Node-RED 发送电子邮件

本教程演示如何使用 Node-RED 设定来自 OV20i 摄像头的自动邮件通知。您将学习如何配置 Gmail 集成,并创建将检测警报、系统状态更新以及故障通知直接发送到您的邮箱的流程。

您将构建的内容: 一个自动化邮件系统,使用 Gmail SMTP 将 OV20i 的检测结果、警报和通知发送给指定收件人。

实际应用场景: 在检测失败时立即收到邮件警报、向管理层发送每日质量报告,或在系统出现问题时通知维护团队——以上均可由您的视觉检测系统自动完成。

先决条件

  • 具备 Node-RED 访问权限的 OV20i 摄像头
  • 用于发送邮件的 Gmail 账户
  • 对 Node-RED 流的基本了解
  • 访问 Google 账户安全设置

教程概览

我们将构建: 一个 Node-RED 流,能够自动发送包含检测结果和系统警报的电子邮件通知。

所需时间: 20-30 分钟(含 Gmail 设置)

掌握的技能: Gmail 应用密码设置、SMTP 配置、自动化邮件通知

步骤 1:设置 Gmail 应用密码

1.1 启用两步验证

  1. 在 accounts.google.com 登录您的 Google 账户
  2. 在左侧导航菜单中点击“安全性”
  3. 查找“以 Google 登录”部分
  4. 点击“2 步验证”
  5. 若尚未启用,请按照提示启用两步验证
备注

在创建应用密码之前,需要启用两步验证。

1.2 生成应用密码

  1. 在启用两步验证后返回安全性页面
  2. 点击“应用密码”(在“以 Google 登录”下)
  3. 将应用类型选择为“Mail”
  4. 将设备类型选择为“Other”
  5. 输入一个名称,如“OV20i Node-RED Email”
  6. 点击“生成”

1.3 保存您的应用密码

  1. 复制 Google 显示的 16 位密码
  2. 将其安全保存——您将需要它来配置 Node-RED
  3. 注:此密码仅显示一次。如丢失,请重新生成一个

检查点: 您应已保存一个用于 Node-RED 的 16 位 Gmail 应用密码。

步骤 2:安装 Email 节点(如有需要)

2.1 检查是否有 Email 节点

  1. 在 OV20i 摄像头上打开 Node-RED
  2. 在左侧调色板的输出区查找“email”节点
  3. 如果找不到,需要安装 email 包

2.2 安装 Email 包(如有需要)

  1. 在 Node-RED 中点击汉堡菜单(≡)
  2. 选择“Manage palette”(管理调色板)
  3. 点击“Install”标签
  4. 搜索“node-red-node-email”
  5. 点击该包旁的“Install”(安装)

步骤 3:创建基础邮件流程

3.1 添加所需节点

  1. 导航到 IO Block 以访问 Node-RED
  2. 从调色板拖拽以下节点到画布:
    • 注入节点(用于测试)
    • Email 节点(来自输出区)
  3. 将注入输出连接到邮件输入

3.2 基础流程结构

Inject → Email

流程目的: 用于测试和基本通知的简单邮件发送。

image.png

第 4 步:配置邮件内容

4.1 设置注入节点

  1. 双击注入节点以打开属性
  2. 设置载荷
    • 载荷类型: "string"
    • 载荷值:您的邮件正文文本(例如 “来自 OV20i 的检查警报”)
  3. 添加邮件主题
    • 单击“+ add” 以添加一个属性

    • 属性名称: "topic"

    • 属性值:您的邮件主题(例如“OV20i 检查警报”)

      image.png

4.2 示例基本配置

载荷(邮件正文):

Inspection completed at Station 1
Status: Alert triggered
Time: Check timestamp for details

主题(邮件主题):

OV20i Inspection Alert - Station 1

4.3 保存注入配置

  1. 为节点命名,例如 "Email Trigger"
  2. 单击 "Done" 以保存配置

第 5 步:配置 Email SMTP 设置

5.1 设置 Email 节点

  1. 双击邮件节点以打开属性
  2. 配置基本设置
    • 名称: "Send Alert Email"(或描述性名称)
    • To:收件人邮箱地址(例如 quality@company.com

5.2 配置 Gmail SMTP

  1. 服务器smtp.gmail.com
  2. 端口465
  3. 勾选 "使用安全连接"
  4. 身份验证类型Basic
  5. Userid:您的完整 Gmail 地址(例如 alerts@company.com
  6. 密码:第 1 步中的 16 位应用程序密码

5.3 安全设置

  1. 勾选 "检查服务器证书是否有效"
  2. 确保所有设置均已正确输入
  3. 单击 "Done" 以保存邮件节点配置

检查点: 您的邮件节点应显示无错误指示,并显示收件人地址。

image.png

第 6 步:测试您的邮件流

6.1 部署与测试

  1. 在右上角点击 "Deploy" 按钮
  2. 等待显示 "Successfully deployed" 消息
  3. 点击注入节点按钮(左侧的灰色方块)

6.2 验证邮件送达

  1. 检查收件人邮箱的测试邮件
  2. 若未出现在收件箱,请检查垃圾邮件文件夹
  3. 在 Node-RED 调试面板中查找任何错误信息

6.3 如有需要请排除故障

常见问题:

  • 错误的应用程序密码:重新生成 Gmail 应用程序密码
  • SMTP 设置:验证服务器和端口是否正确
  • 防火墙:确保允许出站 SMTP 流量

第 7 步:与检查结果的集成

7.1 连接到检查流程

根据检查结果发送邮件:

  1. 查找您的主检查流程(以“All Block Outputs”开头)
  2. 将您的邮件流作为检查处理的分支添加
  3. 在检查逻辑之后连接,但与最终结果并行

7.2 示例集成流程

All Block Outputs → [Inspection Logic] → Final Pass/Fail

Format Email → Send Email

image.png

7.3 动态电子邮件内容

将 inject node 替换为函数节点以实现动态内容:

// Dynamic email based on inspection results
const result = msg.payload.result ? "PASSED" : "FAILED";
const timestamp = new Date().toLocaleString();
const station = global.get("station_name") || "Unknown Station";

// Set email subject
msg.topic = `Inspection ${result} - ${station}`;

// Set email body
msg.payload = `Inspection Report:
Status: ${result}
Station: ${station}
Time: ${timestamp}
Image: ${msg.payload.image_url || "No image available"}

Please review and take appropriate action.`;

return msg;

步骤 8:完整流程示例

8.1 导入现成的 Flow

您可以导入此完整 Flow JSON:

[
{
"id": "email_node_1",
"type": "e-mail",
"name": "Send Inspection Alert",
"server": "smtp.gmail.com",
"port": "465",
"secure": true,
"authtype": "BASIC",
"to": "quality@company.com"
},
{
"id": "format_email",
"type": "function",
"name": "Format Email Content",
"func": "const result = msg.payload.result ? 'PASSED' : 'FAILED';\nmsg.topic = `Inspection ${result}`;\nmsg.payload = `Status: ${result}\\nTime: ${new Date()}`;\nreturn msg;"
}
]

8.2 根据需要进行自定义

  1. 更新贵组织的电子邮件地址
  2. 根据您的具体需求修改电子邮件内容
  3. 调整时序和触发条件
  4. 在生产部署前充分测试

故障排除

常见问题

问题症状解决方法
身份验证失败"Login failed" 错误验证应用密码是否正确,并启用两步验证
连接超时未发送邮件,出现超时错误检查防火墙设置,验证 SMTP 服务器和端口
邮件在垃圾邮件邮件已送达但在垃圾邮件文件夹将发件人添加到安全列表,改进邮件内容
流程未触发无调试输出检查流程连接和触发条件

调试您的 Email Flow

  1. 在每一步之后添加调试节点以跟踪数据
  2. 检查 Node-RED 日志以获取详细错误信息
  3. 如有需要,使用外部邮件客户端测试 SMTP 设置
  4. 验证相机到 Gmail 服务器的网络连接

成功!您的邮件集成已完成

您的 OV20i 摄像头现在可以:

发送自动化的检查结果电子邮件通知

提供包含检查详情的丰富且格式化的消息

支持多位收件人及升级工作流

提供定期报告与摘要

基于检查结果的条件消息处理

最佳实践

邮件管理

  • 使用描述性主题,带有清晰的状态指示
  • 保持消息简洁,但信息充分
  • 包含时间戳和工位标识
  • 在通知中提供可执行的信息

安全性与可靠性

  • 保护应用密码 - 安全存储并定期轮换
  • 为系统通知使用专用的电子邮件账户
  • 定期测试邮件投递以确保可靠性
  • 监控投递失败情况,并具备备用通知方式

性能注意事项

  • 限制邮件发送频率 以避免触发垃圾邮件检测
  • 为不同的告警类型使用合适的收件人名单
  • 对高吞吐量系统实现速率限制
  • 在包含大附件时考虑邮件大小

下一步

在设置电子邮件通知后:

  1. 为不同类型的告警创建电子邮件模板
  2. 为各利益相关者设置分发列表
  3. 为关键问题实现升级工作流
  4. 为管理层创建定期报告
  5. 与其他通知系统集成(SMS、Teams 等)

🔗 参见